#ifndef __CONFIGURATION_H__
#define __CONFIGURATION_H__
#include<string>
#include<map>

using std::string;

using std::map;


class Configuration
{
public:
    //静态成员函数有参构造
    static Configuration* GetInstance(std::string& path);

    //静态无参构造
    static Configuration* GetInstance();
    //获取源数据成员
    std::map<std::string,std::string>& GetConfigMap();

private:
    Configuration(std::string& path);
    static Configuration* _confi;
   std::string _path;
   map<string,string> _map;

};

//利用栈上成员的生命空间管理单例对象的释放（还有嵌套类和atexot()和pthread_once()函数针对于多进程)

class Config
{
public:
    //构造
    Config(Configuration* t);

    //返回指针,已作废
    Configuration* ret();
    ~Config();
private:
    Configuration* _tmp;
};

#endif
